View Javadoc
1 package net.plugin.sql.gui; 2 3 /* 4 * Created by IntelliJ IDEA. 5 * User: birchfield 6 * Date: Aug 18, 2002 7 * Time: 12:16:16 PM 8 * To change template for new class use 9 * Code Style | Class Templates options (Tools | IDE Options). 10 */ 11 12 import net.plugin.sql.beans.DataSource; 13 import net.plugin.sql.gui.model.tree.DataSourceTreeNode; 14 import net.plugin.sql.util.DataSourceManager; 15 import net.plugin.sql.listeners.DataSourceSelectionListener; 16 import net.plugin.sql.listeners.AdhocQuerySelectionListener; 17 18 import javax.swing.*; 19 import javax.swing.event.TreeSelectionEvent; 20 import javax.swing.tree.*; 21 import java.awt.event.*; 22 import java.util.*; 23 24 import com.intellij.openapi.project.Project; 25 import com.intellij.openapi.project.ProjectManager; 26 27 public class SQLConnectionTree extends JTree implements MouseListener, ActionListener { 28 private Collection dataSourceListeners = null; 29 private Collection adhocQueryListeners = null; 30 31 private DataSourcePopupMenu popupMenu = null; 32 33 private final Project project; 34 35 public SQLConnectionTree(Project project) { 36 super(); 37 this.project = project; 38 dataSourceListeners = new ArrayList(); 39 adhocQueryListeners = new ArrayList(); 40 updateTreeModel(); 41 getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 42 addMouseListener(this); 43 popupMenu = new DataSourcePopupMenu(); 44 popupMenu.addActionListener(this); 45 } 46 47 48 49 public void updateTreeModel() { 50 DefaultMutableTreeNode root = new DefaultMutableTreeNode("Data Sources"); 51 Collection datasources = DataSourceManager.getInstance(project).getDataSources(); 52 for (Iterator iterator = datasources.iterator(); iterator.hasNext();) { 53 DataSource dataSource = (DataSource) iterator.next(); 54 DataSourceTreeNode node = new DataSourceTreeNode(dataSource); 55 root.add(node); 56 } 57 DefaultTreeModel model = new DefaultTreeModel(root); 58 setModel(model); 59 } 60 61 public void valueChanged(TreeSelectionEvent e) { 62 System.out.println("e = " + e); 63 DataSourceTreeNode node = (DataSourceTreeNode) getLastSelectedPathComponent(); 64 System.out.println("node = " + node); 65 } 66 67 public void mouseClicked(MouseEvent e) { 68 if (e.getClickCount() == 2) { 69 DataSourceTreeNode node = (DataSourceTreeNode) getLastSelectedPathComponent(); 70 notifyDatasourceListeners(node.getDataSource()); 71 } 72 } 73 74 public void mousePressed(MouseEvent e) { 75 if (e.isPopupTrigger()) { 76 popupMenu.show(e.getComponent(), e.getX(), e.getY()); 77 } 78 } 79 80 public void mouseReleased(MouseEvent e) { 81 if (e.isPopupTrigger()) { 82 popupMenu.show(e.getComponent(), e.getX(), e.getY()); 83 } 84 } 85 86 public void mouseEntered(MouseEvent e) { 87 } 88 89 public void mouseExited(MouseEvent e) { 90 } 91 92 public void actionPerformed(ActionEvent e) { 93 DataSourceTreeNode node = (DataSourceTreeNode) getLastSelectedPathComponent(); 94 if (node != null) { 95 if (e.getActionCommand().indexOf("adhoc") > 0) { 96 notifyAdhocQueryListeners(node.getDataSource()); 97 } else { 98 DataSourceManager.getInstance(project).removeDataSource(node.getDataSource()); 99 updateTreeModel(); 100 } 101 } 102 } 103 104 105 private void notifyDatasourceListeners(DataSource dataSource) { 106 for (Iterator iterator = dataSourceListeners.iterator(); iterator.hasNext();) { 107 DataSourceSelectionListener dataSourceSelectionListener = (DataSourceSelectionListener) iterator.next(); 108 dataSourceSelectionListener.dataSourceSelected(dataSource); 109 } 110 } 111 112 private void notifyAdhocQueryListeners(DataSource dataSource) { 113 for (Iterator iterator = adhocQueryListeners.iterator(); iterator.hasNext();) { 114 AdhocQuerySelectionListener adhocQuerySelectionListener = (AdhocQuerySelectionListener) iterator.next(); 115 adhocQuerySelectionListener.adhocQuerySelected(dataSource); 116 } 117 } 118 119 public void addDataSourceSelectionListener(DataSourceSelectionListener listener) { 120 dataSourceListeners.add(listener); 121 } 122 123 public void addAdhocQuerySelectionListener(AdhocQuerySelectionListener listener) { 124 adhocQueryListeners.add(listener); 125 } 126 127 public static void main(String[] args) { 128 // JFrame frame = new JFrame("Test"); 129 // frame.getContentPane().add(new SQLConnectionTree()); 130 // frame.setSize(300, 300); 131 // frame.setVisible(true); 132 // frame.show(); 133 } 134 }

This page was automatically generated by Maven